import '../shared/models/word.dart';

class EsperantoVocabularyBatch6 {
  // 更多复杂前缀 (50个)
  static final List<Word> _moreAdvancedPrefixes = [
    Word(
      id: 'anti_prefix_001',
      esperanto: 'anti-',
      english: 'anti-, against',
      pronunciation: 'AN-ti',
      definition: 'Against, opposing, contrary to',
      examples: ['antikorpo (antibody)', 'antisepsa (antiseptic)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'auto_prefix_001',
      esperanto: 'aŭto-',
      english: 'auto-, self',
      pronunciation: 'AŬ-to',
      definition: 'Self, automatic, own',
      examples: ['aŭtobiografio (autobiography)', 'aŭtomata (automatic)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'bio_prefix_001',
      esperanto: 'bio-',
      english: 'bio-, life',
      pronunciation: 'BI-o',
      definition: 'Life, living, biological',
      examples: ['biografio (biography)', 'biologia (biological)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'geo_prefix_001',
      esperanto: 'geo-',
      english: 'geo-, earth',
      pronunciation: 'GE-o',
      definition: 'Earth, ground, geography',
      examples: ['geografio (geography)', 'geologio (geology)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'hidro_prefix_001',
      esperanto: 'hidro-',
      english: 'hydro-, water',
      pronunciation: 'HI-dro',
      definition: 'Water, liquid, hydraulic',
      examples: ['hidrogeno (hydrogen)', 'hidraulika (hydraulic)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'homo_prefix_001',
      esperanto: 'homo-',
      english: 'homo-, same',
      pronunciation: 'HO-mo',
      definition: 'Same, similar, uniform',
      examples: ['homogena (homogeneous)', 'homonimo (homonym)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'hetero_prefix_001',
      esperanto: 'hetero-',
      english: 'hetero-, different',
      pronunciation: 'he-TE-ro',
      definition: 'Different, other, varied',
      examples: ['heterogena (heterogeneous)', 'heterodoksa (heterodox)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'mikro_prefix_001',
      esperanto: 'mikro-',
      english: 'micro-, small',
      pronunciation: 'MI-kro',
      definition: 'Small, tiny, microscopic',
      examples: ['mikroskopo (microscope)', 'mikrobo (microbe)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'makro_prefix_001',
      esperanto: 'makro-',
      english: 'macro-, large',
      pronunciation: 'MA-kro',
      definition: 'Large, big, extensive',
      examples: ['makroekonomio (macroeconomics)', 'makromolekulo (macromolecule)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'mega_prefix_001',
      esperanto: 'mega-',
      english: 'mega-, million',
      pronunciation: 'ME-ga',
      definition: 'Million, very large',
      examples: ['megabajto (megabyte)', 'megalopolo (megalopolis)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'mono_prefix_001',
      esperanto: 'mono-',
      english: 'mono-, single',
      pronunciation: 'MO-no',
      definition: 'Single, one, alone',
      examples: ['monologio (monologue)', 'monopolo (monopoly)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'poli_prefix_001',
      esperanto: 'poli-',
      english: 'poly-, many',
      pronunciation: 'PO-li',
      definition: 'Many, multiple, several',
      examples: ['poligamio (polygamy)', 'poligloto (polyglot)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'neo_prefix_001',
      esperanto: 'neo-',
      english: 'neo-, new',
      pronunciation: 'NE-o',
      definition: 'New, recent, modern',
      examples: ['neologismo (neologism)', 'neofito (neophyte)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'paleo_prefix_001',
      esperanto: 'paleo-',
      english: 'paleo-, ancient',
      pronunciation: 'pa-LE-o',
      definition: 'Ancient, old, prehistoric',
      examples: ['paleontologio (paleontology)', 'paleolitiko (paleolithic)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'proto_prefix_001',
      esperanto: 'proto-',
      english: 'proto-, first',
      pronunciation: 'PRO-to',
      definition: 'First, original, primitive',
      examples: ['prototipo (prototype)', 'protokolo (protocol)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'ultra_prefix_001',
      esperanto: 'ultra-',
      english: 'ultra-, beyond',
      pronunciation: 'UL-tra',
      definition: 'Beyond, extreme, excessive',
      examples: ['ultravioleta (ultraviolet)', 'ultrasono (ultrasound)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'meta_prefix_001',
      esperanto: 'meta-',
      english: 'meta-, beyond',
      pronunciation: 'ME-ta',
      definition: 'Beyond, after, change',
      examples: ['metamorfozo (metamorphosis)', 'metafiziko (metaphysics)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'para_prefix_001',
      esperanto: 'para-',
      english: 'para-, beside',
      pronunciation: 'PA-ra',
      definition: 'Beside, alongside, similar',
      examples: ['paralela (parallel)', 'parafrazo (paraphrase)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'hiper_prefix_001',
      esperanto: 'hiper-',
      english: 'hyper-, over',
      pronunciation: 'HI-per',
      definition: 'Over, above, excessive',
      examples: ['hipertensio (hypertension)', 'hiperbolo (hyperbole)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'hipo_prefix_001',
      esperanto: 'hipo-',
      english: 'hypo-, under',
      pronunciation: 'HI-po',
      definition: 'Under, below, deficient',
      examples: ['hipotensio (hypotension)', 'hipotezo (hypothesis)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
  ];

  // 更多复杂后缀 (50个)
  static final List<Word> _moreAdvancedSuffixes = [
    Word(
      id: 'ologi_suffix_001',
      esperanto: '-ologi-',
      english: '-ology',
      pronunciation: 'o-lo-GI',
      definition: 'Study of, science of',
      examples: ['biologio (biology)', 'geologio (geology)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'graf_suffix_001',
      esperanto: '-graf-',
      english: '-graphy',
      pronunciation: 'GRAF',
      definition: 'Writing, recording, description',
      examples: ['geografio (geography)', 'biografio (biography)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'skop_suffix_001',
      esperanto: '-skop-',
      english: '-scope',
      pronunciation: 'SKOP',
      definition: 'Instrument for viewing',
      examples: ['teleskopo (telescope)', 'mikroskopo (microscope)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'metr_suffix_001',
      esperanto: '-metr-',
      english: '-meter',
      pronunciation: 'METR',
      definition: 'Measuring instrument',
      examples: ['termometro (thermometer)', 'kilometro (kilometer)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'fob_suffix_001',
      esperanto: '-fob-',
      english: '-phobia',
      pronunciation: 'FOB',
      definition: 'Fear of, aversion to',
      examples: ['klaŭstrofobio (claustrophobia)', 'agorafobio (agoraphobia)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'fil_suffix_001',
      esperanto: '-fil-',
      english: '-phile',
      pronunciation: 'FIL',
      definition: 'Love of, attraction to',
      examples: ['bibliofilo (bibliophile)', 'filozofo (philosopher)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'krat_suffix_001',
      esperanto: '-krat-',
      english: '-crat',
      pronunciation: 'KRAT',
      definition: 'Rule, government',
      examples: ['demokratio (democracy)', 'aristokrato (aristocrat)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'arhi_suffix_001',
      esperanto: '-arĥi-',
      english: '-archy',
      pronunciation: 'AR-ĥi',
      definition: 'Rule, government system',
      examples: ['monarĥio (monarchy)', 'anarĥio (anarchy)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'tekn_suffix_001',
      esperanto: '-tekn-',
      english: '-tech',
      pronunciation: 'TEKN',
      definition: 'Art, skill, technology',
      examples: ['teknologio (technology)', 'arkitekto (architect)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'terapi_suffix_001',
      esperanto: '-terapi-',
      english: '-therapy',
      pronunciation: 'te-ra-PI',
      definition: 'Treatment, healing',
      examples: ['fizioterapio (physiotherapy)', 'psikoterapio (psychotherapy)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'patologi_suffix_001',
      esperanto: '-patologi-',
      english: '-pathology',
      pronunciation: 'pa-to-lo-GI',
      definition: 'Disease, suffering',
      examples: ['psikopatio (psychopathy)', 'neuropatologio (neuropathology)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'mani_suffix_001',
      esperanto: '-mani-',
      english: '-mania',
      pronunciation: 'ma-NI',
      definition: 'Obsession, excessive desire',
      examples: ['monomania (monomania)', 'bibliomania (bibliomania)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'gen_suffix_001',
      esperanto: '-gen-',
      english: '-gen',
      pronunciation: 'GEN',
      definition: 'Producer, generator',
      examples: ['oksigeno (oxygen)', 'hidrogeno (hydrogen)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'cid_suffix_001',
      esperanto: '-cid-',
      english: '-cide',
      pronunciation: 'TSID',
      definition: 'Killer, destroyer',
      examples: ['insekticido (insecticide)', 'homicido (homicide)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'vor_suffix_001',
      esperanto: '-vor-',
      english: '-vore',
      pronunciation: 'VOR',
      definition: 'Eater, consumer',
      examples: ['karnivoro (carnivore)', 'herbivoro (herbivore)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'morfi_suffix_001',
      esperanto: '-morf-',
      english: '-morph',
      pronunciation: 'MORF',
      definition: 'Form, shape',
      examples: ['metamorfozo (metamorphosis)', 'polimorfismo (polymorphism)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'logi_suffix_001',
      esperanto: '-logi-',
      english: '-logy',
      pronunciation: 'lo-GI',
      definition: 'Study, science, discourse',
      examples: ['psikologio (psychology)', 'teologio (theology)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'nomi_suffix_001',
      esperanto: '-nomi-',
      english: '-nomy',
      pronunciation: 'no-MI',
      definition: 'Law, management, arrangement',
      examples: ['ekonomio (economy)', 'astronomio (astronomy)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'tropi_suffix_001',
      esperanto: '-tropi-',
      english: '-tropy',
      pronunciation: 'tro-PI',
      definition: 'Turning, changing direction',
      examples: ['entropio (entropy)', 'heliotroismo (heliotropism)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'plazi_suffix_001',
      esperanto: '-plazi-',
      english: '-plasia',
      pronunciation: 'pla-ZI',
      definition: 'Formation, development',
      examples: ['displazio (dysplasia)', 'hiperplazio (hyperplasia)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
  ];

  // 基础词根 (50个)
  static final List<Word> _basicRoots = [
    Word(
      id: 'am_root_001',
      esperanto: 'am-',
      english: 'love',
      pronunciation: 'AM',
      definition: 'Love, affection, fondness',
      examples: ['ami (to love)', 'amiko (friend)', 'amoro (love affair)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'bel_root_001',
      esperanto: 'bel-',
      english: 'beautiful',
      pronunciation: 'BEL',
      definition: 'Beautiful, attractive, pretty',
      examples: ['bela (beautiful)', 'beleco (beauty)', 'beligi (beautify)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'bon_root_001',
      esperanto: 'bon-',
      english: 'good',
      pronunciation: 'BON',
      definition: 'Good, well, positive',
      examples: ['bona (good)', 'boneco (goodness)', 'bonigi (improve)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'dir_root_001',
      esperanto: 'dir-',
      english: 'say',
      pronunciation: 'DIR',
      definition: 'Say, tell, speak',
      examples: ['diri (to say)', 'diranto (speaker)', 'eldiri (pronounce)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'don_root_001',
      esperanto: 'don-',
      english: 'give',
      pronunciation: 'DON',
      definition: 'Give, donate, present',
      examples: ['doni (to give)', 'donaco (gift)', 'donanto (donor)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'far_root_001',
      esperanto: 'far-',
      english: 'do',
      pronunciation: 'FAR',
      definition: 'Do, make, perform',
      examples: ['fari (to do)', 'faranto (doer)', 'farilo (tool)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'help_root_001',
      esperanto: 'help-',
      english: 'help',
      pronunciation: 'HELP',
      definition: 'Help, assist, aid',
      examples: ['helpi (to help)', 'helpanto (helper)', 'helpema (helpful)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'ir_root_001',
      esperanto: 'ir-',
      english: 'go',
      pronunciation: 'IR',
      definition: 'Go, move, travel',
      examples: ['iri (to go)', 'iranto (goer)', 'foriri (go away)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'kom_root_001',
      esperanto: 'kom-',
      english: 'beginning',
      pronunciation: 'KOM',
      definition: 'Beginning, start, commence',
      examples: ['komenci (begin)', 'komenco (beginning)', 'komencanto (beginner)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'labor_root_001',
      esperanto: 'labor-',
      english: 'work',
      pronunciation: 'la-BOR',
      definition: 'Work, labor, effort',
      examples: ['labori (to work)', 'laboranto (worker)', 'laborejo (workplace)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'lern_root_001',
      esperanto: 'lern-',
      english: 'learn',
      pronunciation: 'LERN',
      definition: 'Learn, study, acquire knowledge',
      examples: ['lerni (to learn)', 'lernanto (learner)', 'lernejo (school)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'log_root_001',
      esperanto: 'loĝ-',
      english: 'live',
      pronunciation: 'LOĜ',
      definition: 'Live, dwell, reside',
      examples: ['loĝi (to live)', 'loĝanto (resident)', 'loĝejo (dwelling)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'man_root_001',
      esperanto: 'man-',
      english: 'hand',
      pronunciation: 'MAN',
      definition: 'Hand, manual, handle',
      examples: ['mano (hand)', 'manĝi (eat)', 'manlabori (work by hand)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'mort_root_001',
      esperanto: 'mort-',
      english: 'death',
      pronunciation: 'MORT',
      definition: 'Death, die, mortal',
      examples: ['morti (to die)', 'morto (death)', 'mortigi (kill)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'mov_root_001',
      esperanto: 'mov-',
      english: 'move',
      pronunciation: 'MOV',
      definition: 'Move, motion, movement',
      examples: ['movi (to move)', 'movado (movement)', 'movebla (movable)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'nasc_root_001',
      esperanto: 'nask-',
      english: 'birth',
      pronunciation: 'NASK',
      definition: 'Birth, born, give birth',
      examples: ['naski (give birth)', 'naskiĝi (be born)', 'naskotago (birthday)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'pens_root_001',
      esperanto: 'pens-',
      english: 'think',
      pronunciation: 'PENS',
      definition: 'Think, thought, consider',
      examples: ['pensi (to think)', 'penso (thought)', 'pensema (thoughtful)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'port_root_001',
      esperanto: 'port-',
      english: 'carry',
      pronunciation: 'PORT',
      definition: 'Carry, bear, transport',
      examples: ['porti (to carry)', 'portanto (carrier)', 'transporti (transport)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'rid_root_001',
      esperanto: 'rid-',
      english: 'laugh',
      pronunciation: 'RID',
      definition: 'Laugh, smile, ridicule',
      examples: ['ridi (to laugh)', 'rideto (smile)', 'ridinda (ridiculous)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'sci_root_001',
      esperanto: 'sci-',
      english: 'know',
      pronunciation: 'STSI',
      definition: 'Know, knowledge, science',
      examples: ['scii (to know)', 'scio (knowledge)', 'scienco (science)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
  ];

  // 获取所有第六批次词汇
  static List<Word> getAllWords() {
    return [
      ..._moreAdvancedPrefixes,
      ..._moreAdvancedSuffixes,
      ..._basicRoots,
    ];
  }

  // 获取更多高级前缀
  static List<Word> getMoreAdvancedPrefixes() => _moreAdvancedPrefixes;

  // 获取更多高级后缀
  static List<Word> getMoreAdvancedSuffixes() => _moreAdvancedSuffixes;

  // 获取基础词根
  static List<Word> getBasicRoots() => _basicRoots;

  // 获取所有类别
  static List<String> getAllCategories() {
    return getAllWords().map((word) => word.category).toSet().toList()..sort();
  }

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    return getAllWords().where((word) => word.category == category).toList();
  }

  // 根据难度获取词汇
  static List<Word> getWordsByDifficulty(int difficulty) {
    return getAllWords().where((word) => word.difficulty == difficulty).toList();
  }
} 